<?php

declare(strict_types=1);

namespace DreamCat\ObjectValid;

use DreamCat\ObjectValid\Exception\CheckErrorException;
use ReflectionParameter;

/**
 * 对象属性检查接口
 * @author vijay
 */
interface ValidationInterface
{
    /**
     * 检查数据是否合格
     * @param object $object 要检查的对象
     * @return void
     * @throws CheckErrorException 检查不通过时抛出异常
     */
    public function validObject(object $object): void;

    /**
     * 检查参数是否合格
     * @param ReflectionParameter $reflectionParameter 要检查的参数反射
     * @param mixed $paramValue 参数的值
     * @return void
     * @throws CheckErrorException 检查不通过时抛出异常
     */
    public function validParam(ReflectionParameter $reflectionParameter, mixed $paramValue): void;
}

# end of file
